/**
 * 模板
 * @author luguoxiang
 * @date 2025-03-03
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
import {BaseEntity, IConfigSchema, LgBizSelect, LgBizSelectProps} from '@/soar';
import groupApi from './group/api';

export interface Template extends BaseEntity {
  /**  */
  id?: any;
  /** 分组 */
  groupId?: any;
  /** 编码 */
  code?: any;
  /** 类型 */
  type?: any;
  /** 名称 */
  name?: any;
  /** 备注 */
  remark?: any;
  /** 创建时间 */
  createTime?: any;
  /** 修改时间 */
  updateTime?: any;
  /** 创建人 */
  createBy?: any;
  /** 更新人 */
  updateBy?: any;
  /** 排序 */
  sort?: any;
  /** 状态 */
  status?: any;
  /** 内容 */
  content?: string;
  /** */
  groupIdName?: string;
}

const fieldList: IConfigSchema<Template>[] = [
  {
    field: 'groupId',
    label: '分组',
    dataType: 'number',
    search: false,
    table: {
      cell(_, { row }) {
        // @ts-ignore
        return row.groupIdName || '默认';
      },
    },
    form: {
      component: LgBizSelect,
      componentProps: {
        data: groupApi.query,
        prepend: { value: 0, label: '默认' },
      } as LgBizSelectProps
    }
  },
  {
    field: 'code',
    label: '编码',
    dataType: 'string',
    form: {
      rules: true
    }
  },
  {
    field: 'name',
    label: '名称',
    dataType: 'string',
    form: {
      rules: true
    }
  },
  {
    field: 'type',
    label: '类型',
    dataType: 'dict',
    params: 'TemplateTypeEnum',
    form: {
      rules: true,
      slots: 'type',
    }
  },
  {
    field: 'remark',
    label: '备注',
    dataType: 'string',
    table: {
      ellipsis:true,
    }
  },
  {
    field: 'sort',
    label: '排序',
    dataType: 'number',
  },
  {
    field: 'status',
    label: '状态',
    dataType: 'dict',
    params: 'DataStatusEnum'
  },
  {
    field: 'content',
    label: '内容',
    dataType: 'string',
    table: {
      ellipsis:true,
    },
    form: {
      rules: true,
      slots: 'content',
      colProps: {
        style: 'max-width: 100%; --lg-grid-min: 2;',
      },
    }
  },
];

export default fieldList;
